//正则验证     
(function($) { 
	$.extend({
		Engine:function(){
			  //正则
  			var RE = {
				intege:"^-?[1-9]\\d*$",					//整数
				intege1:"^[1-9]\\d*$",					//正整数
				intege2:"^-[1-9]\\d*$",					//负整数
				num:"^([+-]?)\\d*\\.?\\d+$",			//数字
				num1:"^[1-9]\\d*|0$",					//正数（正整数 + 0）
				num2:"^-[1-9]\\d*|0$",					//负数（负整数 + 0）
				decmal:"^([+-]?)\\d*\\.\\d+$",			//浮点数
				decmal1:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",　　	//正浮点数
				decmal2:"^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",　 //负浮点数
				decmal3:"^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",　 //浮点数
				decmal4:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",　　 //非负浮点数（正浮点数 + 0）
				decmal5:"^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",　　//非正浮点数（负浮点数 + 0）
				email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
				color:"^[a-fA-F0-9]{6}$",				//颜色
				url:"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",	//url
				chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",					//仅中文
				ascii:"^[\\x00-\\xFF]+$",				//仅ACSII字符
				zipcode:"^\\d{6}$",						//邮编
				mobile:"^(13|15|18)[0-9]{9}$",				//手机
				ip4:"^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$",	//ip地址
				notempty:"^\\S+$",						//非空
				picture:"(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",	//图片
				rar:"(.*)\\.(rar|zip|7zip|tgz)$",								//压缩文件
				date:"^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$",					//日期
				qq:"^[1-9]*[1-9][0-9]*$",				//QQ号码
				tel:"^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$",	//电话号码的函数(包括验证国内区号,国际区号,分机号)
				username:"^\\w+$",						//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
				letter:"^[A-Za-z]+$",					//字母
				letter_u:"^[A-Z]+$",					//大写字母
				letter_l:"^[a-z]+$",					//小写字母
				idcard:"^[1-9]([0-9]{14}|[0-9]{17})$",  //身份证
				doRegExp:function(value,reg){
					value = value.replace(/(^\s*)|(\s*$)/g, "");
					var regx=new RegExp(this[reg]);
					return regx.test(value);
				}//验证函数
  			};
			//正则验证
			this.regExp=function(value,reg)
			{
				return RE.doRegExp(value,reg);
			};
			
			//邮编
			this.zipcode=function(value){
				return RE.doRegExp(value,'zipcode');
			};
			
			//手机号
			this.mobile=function(value){
				return RE.doRegExp(value,'mobile');
			};							
			
			//url
			this.url=function(value){
				return RE.doRegExp(value,'url');
			};
			
			//身份证
			this.idCard=function(value){
				return RE.doRegExp(value,'idcard');				
			};
			
			//数字
      		this.number=function(value){
				return RE.doRegExp(value,'num');	
      		};	
			
			//浮点数
			this.decimal=function(value){
				return RE.doRegExp(value,'decmal1');
      		};
			
			//邮箱
      		this.email=function(value){
				return RE.doRegExp(value,'email');
      		};
			
			//家庭电话
      		this.tel=function(value){
				return RE.doRegExp(value,'tel');
      		};

			//中文名
      		this.chineseName=function(value){
          		return RE.doRegExp(value,'chinese');
      		};						
			
			//选择个数
      		this.selectLength=function(value,minlength){
          		if(value >= minlength){
              		return true;
          		}
          		return false;
      		};			
			
			//必填
			this.required=function(value){
				if(!value) return false;
           		if(value == "" ) return false;
				var regx=new RegExp(RE.notempty);
          		return regx.test(value);
			};
			
			//select必填
			this.selectRequired=function(value){
				if(value==0 || value=='undefined')
				{
					return false;	
				}else{return true;}
			}		
			
			//最小
			this.min=function(value,minValue){
				value= value.replace(/(^\s*)|(\s*$)/g,"");
          		if(this.number(value)&& value>=minValue){
              		return true;
          		}
          		return false;
			};
			
			//最大			
 			this.max=function(value,max){
          		value = value.replace(/(^\s*)|(\s*$)/g, "");
          		if(number(value) && value<=max){
              		return true;
          		}
          		return false;  
      		};
			
			//最小长度
      		this.minlength=function(value,minlength){
          		value = value.replace(/(^\s*)|(\s*$)/g, "");
          		if(value.length >= minlength){
              		return true;
          		}
          		return false;
      		};
			
			//最大长度
      		this.maxlength=function(value,maxlength){
          		value = value.replace(/(^\s*)|(\s*$)/g, "");
          		if(value.length <= maxlength){
              		return true;
          		}
          		return false;
      		};
			
			//用户自定义
      		this.custome=function(value,validateFunc){
          		return validateFunc.call(this,value);
      		}

		}
	});    
})(jQuery); 